In quality assurance systems (e.g., in quality assurance systems for C/C++ software development), test coverage is an important parameter for measuring completeness of the testing that has been performed. Based on the analysis of test coverage data, code blocks that have not been covered can be located quickly.
Accordingly, in testing a software program (e.g., a C/C++ software program), data mining can be performed on test coverage data so as to identify suitable test input data. In other words, a minimum set of tests can be selected according to the change of coverage rate, and used to achieve the test effect of a large amount of tests, so as to improve the efficiency of testing.
According to a conventional method of analyzing the test coverage data, total test coverage rate (e.g., a percentage) is obtained first through a summing process for each test, and changes in the total coverage rate are used to determine whether to include the current test in the minimum set of sets. The procedure for obtaining total coverage rate through summing process is very time consuming, and significantly reduces the efficiency of the coverage data mining Sometimes, when there is a large amount of test coverage data (e.g., millions of lines), the data mining can take days or more time to complete.